﻿using BLL.Interfaces;
using DAL.DBInteractions;
using POCOS;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BLL
{
    public class AuteurServices : IAuteurServices
    {

        private readonly IUnitOfWork _unitofwork;

        public AuteurServices(IUnitOfWork unitofwork)
        {
            this._unitofwork = unitofwork;
        }

        public AuteurServices()
        {

        }

        #region AuteursService Memebers

        public IEnumerable<Auteur> GetAuteur()
        {
            return _unitofwork.AuteurRepository.GetAll();
        }
        public Auteur GetAuteurById(int id)
        {
            return _unitofwork.AuteurRepository.GetById(id);
        }
        public void CreateAuteur(Auteur Auteur)
        {
            _unitofwork.AuteurRepository.Add(Auteur);
            _unitofwork.Commit();
        }
        public Auteur Find(int id)
        {
            return _unitofwork.AuteurRepository.Find(x => x.UserProfileId == id).FirstOrDefault();
        }

        public void UpdateAuteur(Auteur Auteur)
        {
            _unitofwork.AuteurRepository.Update(Auteur);
            _unitofwork.Commit();
        }


        public void DeleteAuteur(int id)
        {
            _unitofwork.AuteurRepository.Delete(GetAuteurById(id));
            _unitofwork.Commit();
        }


      
        public void SaveAuteur()
        {
            _unitofwork.Commit();
        }


        #endregion

        public List<Auteur> GetAuteurs()
        {
            return _unitofwork.AuteurRepository.GetAll().ToList();
        }
    }
}
